package puppy.eval;

import java.util.HashSet;
import java.util.List;

import com.beust.jcommander.Parameter;
import com.beust.jcommander.internal.Lists;

public class CommanLineParametersRW {
	  @Parameter
	  private List<String> parameters = Lists.newArrayList();
	 
	  @Parameter(names = { "-log", "-verbose" }, description = "Level of verbosity")
	  private Integer verbose = 1;
	  
	  
	  
	 
	  @Parameter(names = "-ages", description = "Comma-separated list of ages groups to train the model (kids,kids-teens, kids-teens-mteens, etc")
	  private String ages;
	 
	  @Parameter(names = "-debug", description = "Debug mode")
	  private boolean debug = false;

	  @Parameter(names = "-graph", description = "Path with the graph data")
	  private String graph;
	  
	  @Parameter(names = "-node", description = "Path with the node to node frequencies")
	  private String node;
	  
	 
		
		@Parameter(names = "-topics_docs", description = "Path with the doc/topic probabilities")
		  private String topics_docs;
		
		@Parameter(names = "-topics_words", description = "Path with the topics words probabilities")
		  private String topics_words;

		
		@Parameter(names = "-query_topics_probs", description = "Path with the query topic  probabilities")
		  private String query_topics_path;
		
		
		@Parameter(names = "-topics_probabilities", description = "Path with the topic  probabilities")
		  private String topics_probabilities;
	  
		@Parameter(names = "-querytags", description = "Path with the node to node frequencies")
		private String querytags;
	  
		@Parameter(names = "-alpha", description = "alpha parameter for random walk")
		private String alpha;
	  
		@Parameter(names = "-level", description = "level parameter for random walk")
	 	 private int level;
	  
	  
		@Parameter(names = "-iterations", description = "max number of iterations")
		private int iterations;
	  
		@Parameter(names = "-ngramweight", description = "n gram weight")
		private int ngramweight;
	
	  
	  
	  /// evaluation parameters
		 @Parameter(names= "-output_path", description = "output path")
		  private String outupt_path;
	  
	  @Parameter(names= "-evaluation", description = "Evaluation path")
	  private String evaluation;
	  
	  public String getOutupt_path() {
		return outupt_path;
	}


	public void setOutupt_path(String outuptPath) {
		outupt_path = outuptPath;
	}


	@Parameter(names= "-logtype", description = "Type of log files: aol/yahoo")
	  private String logtype;
	  
	  
	  @Parameter(names= "-duration", description = "Min duration in clicks")
	  private int  duration;
	  
	  @Parameter(names= "-onlyClicks", description = "Evaluate queries with only clicks")
	  private boolean  onlyClicks;
	  
	  
	  @Parameter(names= "-onlyManual", description = "Evaluate queries with only manual")
	  private boolean  onlyManual;


	public List<String> getParameters() {
		return parameters;
	}


	public void setParameters(List<String> parameters) {
		this.parameters = parameters;
	}


	public Integer getVerbose() {
		return verbose;
	}


	public void setVerbose(Integer verbose) {
		this.verbose = verbose;
	}


	public String getAges() {
		return ages;
	}


	public void setAges(String ages) {
		this.ages = ages;
	}


	public String getTopics_docs() {
		return topics_docs;
	}


	public void setTopics_docs(String topicsDocs) {
		topics_docs = topicsDocs;
	}


	public String getTopics_words() {
		return topics_words;
	}


	public void setTopics_words(String topicsWords) {
		topics_words = topicsWords;
	}


	public String getQuery_topics_path() {
		return query_topics_path;
	}


	public void setQuery_topics_path(String queryTopicsPath) {
		query_topics_path = queryTopicsPath;
	}


	public String getTopics_probabilities() {
		return topics_probabilities;
	}


	public void setTopics_probabilities(String topicsProbabilities) {
		topics_probabilities = topicsProbabilities;
	}


	public int getLevel() {
		return level;
	}


	public void setLevel(int level) {
		this.level = level;
	}


	public void setAlpha(String alpha) {
		this.alpha = alpha;
	}


	public boolean isDebug() {
		return debug;
	}


	public void setDebug(boolean debug) {
		this.debug = debug;
	}


	public String getGraph() {
		return graph;
	}


	public void setGraph(String graph) {
		this.graph = graph;
	}


	public String getNode() {
		return node;
	}


	public void setNode(String node) {
		this.node = node;
	}


	public String getQuerytags() {
		return querytags;
	}


	public void setQuerytags(String querytags) {
		this.querytags = querytags;
	}


	public String getAlpha() {
		return alpha;
	}


	


	public int getIterations() {
		return iterations;
	}


	public void setIterations(int iterations) {
		this.iterations = iterations;
	}


	public int getNgramweight() {
		return ngramweight;
	}


	public void setNgramweight(int ngramweight) {
		this.ngramweight = ngramweight;
	}


	public String getEvaluation() {
		return evaluation;
	}


	public void setEvaluation(String evaluation) {
		this.evaluation = evaluation;
	}


	public String getLogtype() {
		return logtype;
	}


	public void setLogtype(String logtype) {
		this.logtype = logtype;
	}


	public int getDuration() {
		return duration;
	}


	public void setDuration(int duration) {
		this.duration = duration;
	}


	public boolean isOnlyClicks() {
		return onlyClicks;
	}


	public void setOnlyClicks(boolean onlyClicks) {
		this.onlyClicks = onlyClicks;
	}


	public boolean isOnlyManual() {
		return onlyManual;
	}


	public void setOnlyManual(boolean onlyManual) {
		this.onlyManual = onlyManual;
	}
	  
	
	  
	  
}
